﻿//【初阶】31.AVLTree
//【头文件包含】
//C++的主要头文件
#include<iostream>//c++的输入输出流
using namespace std;
#include<string>
#include<vector>
#include<list>
#include<set>
#include<map>
//C的主要头文件
//#include<stdio.h>
//#include<stdlib.h>
//#include<assert.h>
//#include<string.h> 
#include"AVLTree.hpp"



//【命名空间】

//【结构体声明】【类声明】
//【函数声明】
void Test1();void Test2();void Test3();


//【主函数】
int main()
{
	Test1();
	Test2();
	Test3();


	cout << "****主函数结束****" << endl;
	return 0;
}

//【函数定义】


/*测试用例*/void Test1()
{
	cout << "****测试用例开始****"<< endl;
	TestAVLTree1();
	cout << "****测试用例结束****" << endl << endl;
}

/*测试用例*/void Test2()
{
	cout << "****测试用例开始****" << endl;

	cout << "****测试用例结束****" << endl<<endl;
}

/*测试用例*/void Test3()
{
	cout << "****测试用例开始****" << endl;

	cout << "****测试用例结束****" << endl << endl;
}




//【笔记】
//【初阶】31.AVLTree	
	//AVL树：高度平衡的二叉搜索树
		//构成AVL树的条件
			// 整体为搜索二叉树
			// 树的左右子树高度差不超过1，树左右子树内部也满足该要求 
		//为了方便实现该树，引入平衡因子概念（但并非只有该方式可以实现AVL树）
		//每个节点的平衡因子=右子树高度-左子树高度
		//因为AVL树高度可控在O（log_2_N）所以整体s搜索效率可以控制在O（log_2_N）
	//AVLTree的insert（采用平衡因子原理）
		// 1.按搜索树规则进行插入
		// 2.更新平衡因子
		// 3.如果出现不平衡，旋转










